#include "key.h"

KEY_STATE KeyState = KEY_UP;

volatile uint8_t KeyFLag = 0;

void Keyscan(void)
{
	switch(KeyState)
	{
		case KEY_UP:
		{
			if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == GPIO_PIN_RESET)
			{
				KeyState = KEY_BEBOUNCE;
			}
			break;
		}
		case KEY_BEBOUNCE:
		{
			if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == GPIO_PIN_RESET)
			{
				KeyState = KEY_WAIT_RELEASE;
			}
			else
			{
				KeyState = KEY_UP;
			}
			break;
		}
		case KEY_WAIT_RELEASE:
		{
			if(HAL_GPIO_ReadPin(KEY_GPIO_Port,KEY_Pin) == GPIO_PIN_SET)
			{
				KeyState = KEY_UP;
				KeyFLag = 1;
			}
			break;

		}
		default:break;
	}
}
